package com.fidelizarte.ejb.servicio.fromend.impl;

import javax.ejb.EJB;
import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.fidelizarte.common.util.SeguridadesException;
import com.fidelizarte.ejb.persistence.dao.impl.CampaniaDAO;
import com.fidelizarte.ejb.persistence.dao.impl.PremioDAO;
import com.fidelizarte.ejb.persistence.dao.impl.TipoPremioDAO;
import com.fidelizarte.ejb.persistence.entities.Premio;
import com.fidelizarte.ejb.servicio.frontend.ServicioPremioRemote;
import com.fidelizarte.ejb.servicio.frontend.ServicioUsuarioRemote;

/**
 * Session Bean implementation class ServicioCampaniaImpl
 */
@Stateless
@Remote(ServicioPremioRemote.class)
public class ServicioPremioImpl  implements ServicioPremioRemote{
	private static final Logger log = LoggerFactory
			.getLogger(ServicioPremioImpl.class);
	 private boolean transaccionRealizada=false;
	 private Premio premioDTO= new Premio();
	 @EJB
		private PremioDAO premioDAO;
	 @EJB
		private CampaniaDAO campaniaDAO;
	 @EJB
		private TipoPremioDAO tipoPremioDAO;
	    /**
	     * Default constructor. 
	     */
	    public ServicioPremioImpl() {
	        // TODO Auto-generated constructor stub
	    }
	    @Override
	    @TransactionAttribute (TransactionAttributeType.REQUIRED)
	public boolean setPremio(Integer empresa, Integer campania, Integer tipoPremio, String nombrePremio,
			String descripcion, Integer cantidad, Float precioUnitario)
	    
			throws SeguridadesException{
	    	log.debug("Dentro del metodo setPremio");
	    	transaccionRealizada=false;
	    	this.premioDTO.setCampania(campaniaDAO.buscarPorId(campania));
	    	this.premioDTO.setTipoPremio(tipoPremioDAO.buscarPorId(tipoPremio));
	    	this.premioDTO.setNombrePremio(nombrePremio);
	    	this.premioDTO.setDescribcion(descripcion);
	    	this.premioDTO.setCantidadPremio(cantidad);
	    	this.premioDTO.setPrecioPremio(precioUnitario);
	    	
		premioDAO.actualizar(premioDTO);
		transaccionRealizada=true;
return transaccionRealizada;		
	}
}
